package com.zdxlz.fcmp.business.dto.ict;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * @author: aman
 * @date 2025/2/13 9:21
 * @description
 */

@Data
public class IctIpsecConfig implements Serializable {
    /**
     * IPSec配置主键ID
     */
    private Integer id;

    /**
     * vpn名称
     */
    private String name;

    /**
     * 连接是否启用(1：使能 0：去使能)
     */
    private Boolean enable;

    /**
     * 组网设备
     */
    private List<DeviceInfoDto> deviceList;

    /**
     * DPD重传间隔，单位秒
     */
    @JsonProperty("DPDRetry")
    private int dpdRetry;

    /**
     * IPSec类型，1: Site-to-Site 2: PC-to-Site
     */
    @JsonProperty("IPSecType")
    private int ipSecType;

    /**
     * 封装模式，1: 隧道模式； 2：传输模式
     */
    @JsonProperty("EncapsulationMode")
    private int encapsulationMode;


    /**
     * IKE验证方法，PreShareKey
     */
    private String ikeAuthenticationMethod;

    /**
     * IKE验证算法（MD5/SHA1/SHA256），默认SHA1
     */
    private String ikeAuthenticationAlgorithm;

    /**
     * IKE加密算法（DES\3DES\AES128\AES192\AES256）
     */
    private String ikeEncryptionAlgorithm;

    /**
     * IKE组参数（none/group1/ group2/ group5/ group14）
     */
    private String ikeDHGroup;

    /**
     * IKE身份类型
     */
    private String ikeIDType;

    /**
     * 密钥
     */
    private String ikePreshareKey;

    /**
     * IPSec安全协议，AH/ESP
     */
    private String ipSecTransform;

    /**
     * IPSec认证算法（MD5/SHA1/SHA256）
     */
    private String espEncryptionAlgorithm;

    /**
     * IPSec加密算法（3DES /AES128 /AES192/ AES256）
     */
    private String espAuthenticationAlgorithm;

    /**
     * IPSec DH组（none/group1/ group2/ group5/ group14/group19/group20/group21）
     */
    private String ipSecPFS;

    /**
     * IKE SA时间生命周期
     */
    private String ikeSAPeriod;

    /**
     * 设置IPSec SA生命周期，单位秒
     */
    private int ipSecSATimePeriod;

    /**
     * 设置IPSec SA流量生命周期，单位秒
     */
    private int ipSecSATrafficPeriod;

    /**
     * AH认证算法（MD5/SHA1/SHA256）
     */
    private String ahAuthenticationAlgorithm;

    /**
     * 使能DPD，1：使能 0：去使能
     */
    private int dpdEnable;

    /**
     * DPD空闲时间，单位秒
     */
    private int dpdThreshold;

    /**
     * 对端IKE名称
     */
    private String ikeRemoteName;

    /**
     * 本地IKE名称
     */
    private String ikeLocalName;


}
